Proxy devices are used in multicast networks to manage the forwarding and blocking of multicast sources between a set of multicast subscriber nodes and an upstream multicast router. The upstream multicast router is either in direct connection with multicast sources or an intermediate device indirectly connected to the multicast sources that provides content to a set of multicast subscriber nodes. The proxy device is a level two (L2) device that manages a membership database for a multicast group. Management of a membership database is described in RFC 4605. The proxy device uses the membership data to request that the upstream multicast router forward or block traffic for each multicast source. RFC 4605 recommends that in maintaining the membership data base that the proxy device use merging rules that are described in section 3.2 of RFC 3376 (for IPv4) or section 4.2 of RFC 3810 (for IPv6). These referenced sections describe a manner in which an aggregate state of the membership for a multicast group on an interface between the proxy device and upstream multicast router using Internet Group Management Protocol version 3 (IGMPv3) or Multicast Listener Discovery version 2 (MLDv2) can be maintained. When the membership state for the same multicast group on different sides of the interface is different, this aggregate state can be used to manage the interface.
For IGMPv3 and MLDv2, the membership state in a multicast group can be in an include or an exclude mode. The aggregate state can be derived based on the information received in the multicast membership reports from the multicast subscriber nodes. Multicast subscriber nodes identify in their reports the multicast sources they require traffic from (i.e., those sources that are forwarded) and those multicast sources that they do not require traffic from (i.e., those sources that are blocked). In the include mode, traffic from only the sources requested by the multicast subscriber node will be forwarded for a multicast group. In the exclude mode, traffic from all the sources except those specifically being requested by the multicast subscriber node will be forwarded for the multicast group. However, if there are multiple applications or sockets on an interface that are in a mixture of include and exclude modes, the interface needs to aggregate this state so as to be able to serve all the subscriber nodes correctly.
Section 3.2 of RFC 3376 describes a method for calculating the aggregate state. However, this process requires going through all of the multicast sources that are being excluded to determine common sources for excluding and then subtracting all the sources that are being explicitly included from the list of commonly excluded sources. This process of managing the membership database on a proxy device is not efficient and cannot be scaled. The number of interfaces (for example, subscriber circuits on a multi-bond interface of a smart edge device) can be on the order of thousands of interfaces. Any change in a multicast group membership state on a single circuit requires reprocessing the group membership state of all the circuits in order to come to the new aggregate state of the multi-bond interface. This method is processor intensive for the proxy device and delays the computation of the new aggregate state of the interface. Also, while the aggregate state based on all of the circuits is being reprocessed any change in the state of an already processed circuit will further require reprocessing. This can happen frequently as the membership reports from the multicast subscriber nodes can change state frequently. For example, in certain embodiments, the multicast subscriber nodes are set top boxes managing Internet Protocol Television (IPTV) that generate frequent channel changes where each channel corresponds to a multicast source.